<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<body>
<canvas id="canvas" width=600 height=300 style="border:5px solid black">
<script>
// Compare sections of a <canvas> to assert they are identical, or nearly so.
function compareRows(ctx, y0, y1, width, height, allowableDifference) {
    var data0 = ctx.getImageData(0, y0, width, height).data;
    var data1 = ctx.getImageData(0, y1, width, height).data;
    for (var i = 0; i < data0.length; ++i)
        assert_approx_equals(data0[i], data1[i], allowableDifference);
}

ctx = document.getElementById("canvas").getContext("2d");
ctx.strokeStyle = 'blue';

test(function(t) {

    for (var j = 0; j < 3; ++j) {
        ctx.beginPath();
        for (var i = 0; i < 60; ++i) {
            var x = i * 10;
            var y = j * 100 + 30 + (i % 15);
            if (i == 0) {
                ctx.moveTo(x, y);
            } else {
                ctx.lineTo(x, y);
            }
        }
        ctx.stroke();
    
        if (j == 0) {
            assert_equals(ctx.lineWidth, 1);
            ctx.lineWidth = ctx.lineWidth;
            assert_equals(ctx.lineWidth, 1);
        } else {
            assert_equals(ctx.lineWidth, 1);
            ctx.lineWidth = 1;
            assert_equals(ctx.lineWidth, 1);
        }
    }
    
    // Make sure that all rows are nearly identical.
    // (Tiny variations are OK.)
    compareRows(ctx, 0, 100, 600, 100, 1);
    compareRows(ctx, 0, 200, 600, 100, 1);
    
}, 'Test that the default lineWidth is consistent.');
</script>
</body>
